package com.zuipin.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.zuipin.entity.shoppingCart.CartParam;
import com.zuipin.entity.shoppingCart.ShoppingCart;

/**
 * @description : ShoppingCartMapper数据库操作接口类
 * @author : wuhaijun
 * @date : 2017年3月28日 上午11:48:46
 */
public interface ShoppingCartMapper {
	
	/**
	 * @description : 查询该商品是否存在于购物车
	 * @author : wuhaijun
	 * @date : 2017年4月20日 下午2:34:37
	 */
	public ShoppingCart queryExist(CartParam cartParam);
	
	/**
	 * @description : 购物车新增
	 * @author : wuhaijun
	 * @date : 2017年4月20日 下午2:34:37
	 */
	public int newAdd(CartParam cartParam);
	
	/**
	 * @description : 购物车累加
	 * @author : wuhaijun
	 * @date : 2017年4月20日 下午2:34:37
	 */
	public int upAdd(CartParam cartParam);
	
	/**
	 * @description : 购物车更新购买数量
	 * @author : wuhaijun
	 * @date : 2017年4月20日 下午2:34:37
	 */
	public int updateBuyNum(CartParam cartParam);
	
	/**
	 * @description : 删除购物车
	 * @author : wuhaijun
	 * @date : 2017年4月20日 下午2:34:37
	 */
	public int del(String[] ids);
	
	/**
	 * @description : 购物车查询
	 * @author : wuhaijun
	 * @date : 2017年4月20日 下午2:34:37
	 */
	public List<ShoppingCart> query(Long buyerId, Long sysId);
	
	/**
	 * @description : 在结算页面，查询购物车
	 * @author : wuhaijun
	 * @date : 2017年4月20日 下午2:34:37
	 */
	public List<ShoppingCart> queryBySettle(@Param("ids") String[] ids, @Param("buyerId") Long buyerId, @Param("sysId") Long sysId);
	
	/**
	 * @description : 查询支付方式
	 * @author : wuhaijun
	 * @date : 2017年4月20日 下午2:36:24
	 */
	public List<Map<String, Object>> queryPayMethod(@Param("sysId") Long sysId);
	
	/**
	 * @description : 查询支付方式是否存在
	 * @author : wuhaijun
	 * @date : 2017年4月29日 上午11:42:46
	 */
	public int queryPayMethodExist(String code);
	
	/**
	 * @description : 查询配送方式
	 * @author : wuhaijun
	 * @date : 2017年4月20日 下午2:36:24
	 */
	public List<Map<String, Object>> queryDeliveryMethod(@Param("sysId") Long sysId);
	
	/**
	 * @description : 查询配送方式是否存在
	 * @author : wuhaijun
	 * @date : 2017年4月29日 上午11:49:25
	 */
	public int queryDeliveryMethodExist(String code);
	
	/**
	 * @description : 查询运费模板
	 * @author : wuhaijun
	 * @date : 2017年4月21日 下午5:00:34
	 */
	public Map<String, Object> queryFreightTemplate(String provinceCode, String expressCode);
	
	/**
	 * @description : 查询快递
	 * @author : wuhaijun
	 * @date : 2017年4月27日 下午4:57:15
	 */
	public Map<String, Object> queryExpressByOne(@Param("sysId") Long sysId, @Param("expressCode") String expressCode, @Param("id") Long id);
	
	/**
	 * @description : 提交订单删除相对应的购物车
	 * @author : wuhaijun
	 * @date : 2017年5月1日 下午5:35:58
	 */
	public int delCartBySubmitOrder(@Param("ids") String[] ids, @Param("buyerId") Long buyerId, @Param("sysId") Long sysId);
	
	/**
	 * 查询赠品存在不存在
	 * @param cartParam
	 * @return
	 */
	public ShoppingCart queryPremiumExist(CartParam cartParam);
	
}
